// pages/products/list.js
const app = getApp()

Page({
  data: {
    categories: [],
    products: [],
    currentCategory: null,
    loading: true
  },

  onLoad() {
    console.log('页面加载')
    this.loadCategories()
    this.loadProducts()
  },

  onShow() {
    console.log('页面显示')
    this.loadCategories()
    this.loadProducts()
  },

  // 加载分类
  async loadCategories() {
    try {
      const db = wx.cloud.database()
      console.log('开始加载分类')
      const { data } = await db.collection('categories')
        .orderBy('sort', 'asc')
        .get()
      
      console.log('加载到的分类:', data)
      if (data && data.length > 0) {
        this.setData({ 
          categories: data,
          currentCategory: data[0]._id
        }, () => {
          // 加载第一个分类的商品
          this.loadProducts(data[0]._id)
        })
      } else {
        // 如果没有分类，加载所有商品
        this.loadProducts()
      }
    } catch (error) {
      console.error('加载分类失败：', error)
      wx.showToast({
        title: '加载分类失败',
        icon: 'none'
      })
    }
  },

  // 加载商品
  async loadProducts(categoryId = '') {
    try {
      this.setData({ loading: true })
      
      const db = wx.cloud.database()
      console.log('开始加载商品，分类ID:', categoryId)
      
      // 先检查数据库中是否有商品
      const { total } = await db.collection('products').count()
      console.log('商品总数:', total)
      
      let query = {
        status: 'on'
      }
      
      // 如果有分类ID，添加分类过滤条件
      if (categoryId) {
        query.categoryId = categoryId
      }
      
      console.log('查询条件:', query)
      
      const { data } = await db.collection('products')
        .where(query)
        .orderBy('createTime', 'desc')
        .get()
      
      console.log('加载到的商品:', data)
      if (data && data.length > 0) {
        this.setData({ 
          products: data,
          loading: false
        })
      } else {
        wx.showToast({
          title: '暂无商品',
          icon: 'none'
        })
        this.setData({
          products: [],
          loading: false
        })
      }
    } catch (error) {
      console.error('加载商品失败：', error)
      wx.showToast({
        title: '加载商品失败',
        icon: 'none'
      })
      this.setData({ loading: false })
    }
  },

  // 切换分类
  onCategoryChange(e) {
    const { id } = e.currentTarget.dataset
    if (id === this.data.currentCategory) {
      return; // 如果点击当前分类，不重复加载
    }
    this.setData({ currentCategory: id })
    console.log('切换分类:', id)
    this.loadProducts(id)
  },

  // 跳转到商品详情
  goToDetail(e) {
    const { id } = e.currentTarget.dataset
    wx.navigateTo({
      url: `/pages/products/detail?id=${id}`
    })
  }
})